package com.gzs.learn.payment.inf.dto.web;

import com.gzs.learn.inf.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 配置列表对象
 *
 * @author guanzhisong
 * @date 2021-08-25
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class PaymentChannel implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 应用APPID */
    @Excel(name = "应用APPID")
    private String appId;

    /** 支付渠道 */
    @Excel(name = "支付渠道")
    private Long channel;

    /** 支付类型 */
    @Excel(name = "支付类型")
    private String paymentType;

    /** 支付子类型 */
    @Excel(name = "支付子类型")
    private String paymentSubType;

    /** 应用描述 */
    @Excel(name = "应用描述")
    private String appDesc;

    /** 应用加密key */
    @Excel(name = "应用加密key")
    private String appSecret;

    /** 应用加密key */
    @Excel(name = "商户号")
    private String mchId;

    /** 状态 */
    @Excel(name = "状态")
    private Integer status;

    /** 证书类型 */
    @Excel(name = "证书类型")
    private Integer certType;

    /** 公钥 */
    @Excel(name = "公钥")
    private String pubKey;

    /** 私钥 */
    @Excel(name = "私钥")
    private String privKey;

    @Excel(name = "pkcs内容")
    private String pkcsContent;

    @Excel(name = "pkcs密码")
    private String pkcsPwd;

    /** 安全域名 */
    @Excel(name = "安全域名")
    private String secDomain;

    @Excel(name = "创建时间")
    private Date createTime;

    @Excel(name = "更新时间")
    private Date updateTime;

    @Data
    public static class PubPrivPair {
        private String pub;
        private String priv;
        private String certContent;
        private String certPwd;
        private Integer type;
    }
}
